home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / u_man / cat1 / cc.z / cc
Encoding:
Text File  |  2002-10-03  |  90.1 KB  |  1,510 lines

  1. cc(1)                                                 Last changed: 4-15-99
  2.  
  3.  
  4. NNAAMMEE
  5.      cccc, cc8899, CCCC - Invokes the MIPS C, MIPSpro C, or MIPSpro C++ compiler
  6.  
  7. SSYYNNOOPPSSIISS
  8.      cccc, cc8899 [--oo3322 | --nn3322 | --6644] [--aallll] [--aannssii] [--aannssiiEE] [--aannssiiWW] [--aappoo]
  9.      [--aappookkeeeepp] [--aappoolliisstt] [--aarr] [--bbiiggpp__oonn] [--bbiiggpp__ooffff] [--cc] [--cccckkrr]
  10.      [--CCLLIISSTT::......] [--ccoommmmoonn] [--DD _n_a_m_e=_d_e_f] [--DD _n_a_m_e] [--DDEEBBUUGG::......]
  11.      [--ddiiaagg__eerrrroorr _n_u_m_b_e_r_l_i_s_t]] [[--ddiiaagg__rreemmaarrkk _n_u_m_b_e_r_l_i_s_t]]
  12.      [[--ddiiaagg__ssuupppprreessss _n_u_m_b_e_r_l_i_s_t]] [[--ddiiaagg__wwaarrnniinngg _n_u_m_b_e_r_l_i_s_t]] [[--ddoollllaarr]] [[--EE]]
  13.      [[--ffbb<<_f_i_l_e>]] [[--ffbb__ccrreeaattee <<_p_a_t_h>]] [[--ffbb__oopptt <<_p_a_t_h>]] [[--ffbbggeenn]]
  14.      [[--ffbbuussee<<_f_i_l_e>>]] [[--ffllooaatt]] [[--ffllooaatt__ccoonnsstt]] [[--ffuullllwwaarrnn]] [[--GG _n_u_m]] [[--gg_n]]
  15.      [[--hheellpp]] [[--II]] [[--II _d_i_r]] [[--iiggnnoorree__ssuuffffiixx]] [[--IINNLLIINNEE::......]] [[--IIPPAA::......]]
  16.      [[--KKPPIICC]] [[--LL _d_i_r_e_c_t_o_r_y]] [[--ll _l_i_b_r_a_r_y]] [[--LLAANNGG::......]] [[--LLIISSTT::......]] [[--LLNNOO::......]]
  17.      [[--MM]] [[--MMDDuuppddaattee _f_i_l_e_n_a_m_e]] [[--mmiippss_n [[--MMPP]] [[--mmpp]] [[--mmpplliisstt]] [[--nnooccpppp]]
  18.      [[--nnoonn__sshhaarreedd]] [[--nnoossttddiinncc]] [[--oo _o_u_t_p_u_t]] [[--OO_n]] [[--OOPPTT::......]] [[--PP]] [[--ppccaa]]
  19.      [[--ppccaakkeeeepp]] [[--ppccaalliisstt]] [[--ppeeddaannttiicc]] [[--rr]] [[--rr_p_r_o_c_e_s_s_o_r]] [[--SS]] [[--sshhooww]]
  20.      [[--ssiiggnneedd]] [[--TTAARRGG::......]] [[--TTEENNVV::......]] [[--ttrraappuuvv]] [[--UU _n_a_m_e]]
  21.      [[--uussee__rreeaaddoonnllyy__ccoonnsstt]] [[--uussee__rreeaaddwwrriittee__ccoonnsstt]] [[--vv]] [[--vveerrssiioonn]]
  22.      [[--WW _c,_a_r_g_1[[,,_a_r_g_2......]]]] [[--ww]] [[--ww22]] [[--wwooffff aallll]] [[--wwooffff _n_u_m_b_e_r_l_i_s_t]]
  23.      [[--xxaannssii]] [[--XXccpplluussccoommmm]] [[--YY _c,_p_a_t_h]]
  24.  
  25.      CCCC [--6644] [--aallll] [--aannaacchh] [--aannssiiEE] [--aannssiiWW] [--aappoo] [--aappookkeeeepp]
  26.      [--aappoolliisstt] [--aarr] [--aauuttoo__iinncclluuddee] [--bbiiggpp__oonn] [--bbiiggpp__ooffff]
  27.      [--bbrriieeff__ddiiaaggnnoossttiiccss] [--cc] [--ccffrroonntt] [--CCLLIISSTT::......] [--ccoommmmoonn]
  28.      [--DD _n_a_m_e=_d_e_f] [--DD _n_a_m_e] [--DDEEBBUUGG::......] [--ddiiaagg__eerrrroorr _n_u_m_b_e_r_l_i_s_t]]
  29.      [[--ddiiaagg__rreemmaarrkk _n_u_m_b_e_r_l_i_s_t]] [[--ddiiaagg__ssuupppprreessss _n_u_m_b_e_r_l_i_s_t]]
  30.      [[--ddiiaagg__wwaarrnniinngg _n_u_m_b_e_r_l_i_s_t]] [[--ddoollllaarr]] [[--EE]] [[--ffbb<<_f_i_l_e>]] [[--ffbb__ccrreeaattee
  31.      <<_p_a_t_h>]] [[--ffbb__oopptt <<_p_a_t_h>]] [[--ffbbggeenn]] [[--ffbbuussee<<_f_i_l_e>>]]
  32.      [[--FFEE::eelliimmiinnaattee__dduupplliiccaattee__iinnlliinnee__ccooppiieess]] [[--FFEE::tteemmppllaattee__iinn__eellff__sseeccttiioonn]]
  33.      [[--ffllooaatt]] [[--ffllooaatt__ccoonnsstt]] [[--ffuullllwwaarrnn]] [[--GG _n_u_m]] [[--gg_n]] [[--ggsslliimm]] [[--hheellpp]]
  34.      [[--II]] [[--II _d_i_r]] [[--iiggnnoorree__ssuuffffiixx]] [[--IINNLLIINNEE::......]] [[--IIPPAA::......]] [[--JJ #]] [[--KKPPIICC]]
  35.      [[--LL _d_i_r_e_c_t_o_r_y]] [[--ll _l_i_b_r_a_r_y]] [[--LLAANNGG::......]] [[--LLIISSTT::......]] [[--LLNNOO::......]] [[--MM]]
  36.      [[--MMDDuuppddaattee _f_i_l_e_n_a_m_e]] [[--mmiippss_n [[--MMPP]] [[--mmpp]] [[--nnoo__aauuttoo__iinncclluuddee]]
  37.      [[--nnoo__pprreelliinnkk]] [[--nnooccpppp]] [[--nnoonn__sshhaarreedd]] [[--nnoossttddiinncc]] [[--oo _o_u_t_p_u_t]] [[--OO_n]]
  38.      [[--OOPPTT::......]] [[--PP]] [[--ppccaa]] [[--ppccaakkeeeepp]] [[--ppccaalliisstt]] [[--ppcchh]] [[--ppeeddaannttiicc]]
  39.      [[--pprreelliinnkk]] [[--ppttaa]] [[--ppttaallll]] [[--ppttnnoonnee]] [[--ppttuusseedd]] [[--ppttvv]] [[--rr]]
  40.      [[--rr_p_r_o_c_e_s_s_o_r]] [[--SS]] [[--sshhooww]] [[--ssiiggnneedd]] [[--TTAARRGG::......]] [[--TTEENNVV::......]] [[--ttrraappuuvv]]
  41.      [[--UU _n_a_m_e]] [[--uussee__rreeaaddoonnllyy__ccoonnsstt]] [[--uussee__rreeaaddwwrriittee__ccoonnsstt]] [[--vv]] [[--vveerrssiioonn]]
  42.      [[--WW _c,_a_r_g_1[[,,_a_r_g_2......]]]] [[--ww]] [[--ww22]] [[--wwooffff aallll]] [[--wwooffff _n_u_m_b_e_r_l_i_s_t]]
  43.      [[--XXccpplluussccoommmm]] [[--YY _c,_p_a_t_h]]
  44.  
  45. IIMMPPLLEEMMEENNTTAATTIIOONN
  46.      IRIX systems
  47.  
  48. DDEESSCCRRIIPPTTIIOONN
  49.      This man page describes the cccc(1), cc8899(1), and CCCC(1) commands.
  50.  
  51.      The cccc command invokes the MIPS and MIPSpro C compiler and the source
  52.      preprocessor on source files that contain C code.
  53.  
  54.      The CCCC command invokes the MIPSpro C++ compiler.
  55.  
  56.      The cc8899 command is used to invoke the C compiler when the environment
  57.      variable __XXPPGG is defined.  The command then operates in conformance
  58.      with the X/Open XPG4 standard.  Option or command-line differences
  59.      that may occur due to conformance to this standard are noted in the
  60.      option descriptions.
  61.  
  62.      Throughout this man page, the differences between the C and C++
  63.      compilers are noted when appropriate.  When there is no difference,
  64.      the phrases, _t_h_e _c_o_m_p_i_l_e_r or _t_h_e _C/_C++ _c_o_m_p_i_l_e_r, refer to both
  65.      compilers.
  66.  
  67.      By default, the compiler creates an executable file named aa..oouutt.
  68.      Other files used and created by the compiler are discussed under the
  69.      FILES section of this man page.  See the lldd(1) man page for load-time
  70.      options.
  71.  
  72.      If conflicting options are specified, the option specified last on the
  73.      command line overrides the previously specified option.  Exceptions to
  74.      this rule are noted in the individual option descriptions.
  75.  
  76.      Most ##pprraaggmmaa directives override corresponding command-line options.
  77.      Exceptions to this rule are noted in the option descriptions on this
  78.      man page or in the ##pprraaggmmaa directive descriptions in the _M_I_P_S_p_r_o _C _a_n_d
  79.      _C++ _P_r_a_g_m_a_s manuals.
  80.  
  81.      Some command options, for example, --LLIISSTT, --LLNNOO, --MMPP, --OOPPTT, --TTAARRGG, and
  82.      --TTEENNVV, accept several arguments and allow you to specify a setting for
  83.      each argument.  To specify multiple arguments, either use colons to
  84.      separate each argument or specify multiple options on the command
  85.      line.  For example, the following command lines are equivalent:
  86.  
  87.           cc -LIST:notes=ON:options=OFF b.f
  88.           cc -LIST:notes=ON -LIST:options=OFF b.f
  89.  
  90.      The SGI compilers support three different Application Binary
  91.      Interfaces, which are controlled by the following options (see the
  92.      aabbii(5) man page for more information about these interfaces):
  93.  
  94.           OOppttiioonn         AAccttiioonn
  95.  
  96.           --oo3322 or --3322    Generates an (old) 32-bit object.  (See the oo3322(5)
  97.                          man page for option descriptions and details.)
  98.                          This defaults to --mmiippss22 if --mmiippss11 has not been
  99.                          specified.  See the ppee__eennvviirroonn(5) man page for
  100.                          information on the CCOOMMPPIILLEERR__DDEEFFAAUULLTTSS__PPAATTHH
  101.                          environment variable.
  102.  
  103.           --nn3322           Generates a (new) 32-bit object.  This defaults to
  104.                          --mmiippss33 if --mmiippss44 has not been specified.
  105.  
  106.           --6644            Generates a 64-bit object.  This defaults to
  107.                          --mmiippss44 if --mmiippss33 has not been specified.  See the
  108.                          ppee__eennvviirroonn(5) man page for information on the
  109.                          CCOOMMPPIILLEERR__DDEEFFAAUULLTTSS__PPAATTHH environment variable.
  110.  
  111.      The following alphabetized list of options are valid in the N32 and 64
  112.      ABIs.  See the oo3322(5) man page for options that are specific to the
  113.      O32 ABI.  Unless otherwise specified in the option description, the
  114.      following options apply to the cccc, cc8899, and CCCC commands.
  115.  
  116.      ----      In XPG4 mode, standard utilities that accept operands but not
  117.              options, will recognize ---- as the first argument to be
  118.              discarded.  This is required because portable applications
  119.              need a way to shield their operands from any arbitrary options
  120.              that the implementation may provide as an extension.
  121.  
  122.              For example, if the standard utility ffoooo is listed as taking
  123.              no options, and the application needed to give it a pathname
  124.              with a leading hypen, it could safely do it as: ffoooo ---- --mmyyffiillee
  125.              and avoid any problems with --mm used as an extension.
  126.  
  127.      --aallll    If specified just before a ..aa file (archive library), the
  128.              linker pulls the entire archive into the shared object, not
  129.              just the object files needed for the link (which is the
  130.              default). This option applies to all subsequent ..aa files in
  131.              the command line.  This option cannot be specified with the --cc
  132.              option.
  133.  
  134.              See the lldd(1) man page for more information about shared
  135.              libraries and archives.
  136.  
  137.      --aannaacchh  (CCCC only) Allows anachronistic C++ constructs.
  138.  
  139.      --aannssii
  140.      --cccckkrr
  141.      --xxaannssii  (cccc only) Enables pure ANSI/ISO C mode.  To see a list of
  142.              defined symbols, enter the cccc --sshhooww ffoooo..cc command and see
  143.              which symbols have been added as --DDssyymmbbooll__nnaammee.  xxaannssii (the
  144.              default) enables ANSI/ISO C with all the same definitions as
  145.              K&R/Version7 C mode (--aannssii).  ____SSTTDDCC____ and ____EEXXTTEENNSSIIOONNSS____ are
  146.              defined, many symbols are added into the namespace, and
  147.              ____IINNLLIINNEE__IINNTTRRIINNSSIICCSS is defined and may cause some intrinsic
  148.              <<mmaatthh..hh>>, <<ssttddiioo..hh>>, <<ssttrriinngg..hh>>, and <<ccuurrsseess..hh>> library
  149.              functions to be inlined.  Such inlined functions may not set
  150.              eerrrrnnoo in accordance with the strict ANSI/ISO C standard
  151.              requirements.  --xxaannssii is the default used by the compiler
  152.              unless the environment variable SSGGII__CCCC is set.  See the
  153.              ppee__eennvviirroonn(5) man page for more information on environment
  154.              variables.  If specified with --cccckkrr or --aannssii, the last option
  155.              specified is effective and the rest are ignored.  If specified
  156.              with --aannssii or --xxaannssii, the last option specified is effective
  157.              and the rest are ignored.
  158.  
  159.              NOTE: When compiling in pure ANSI/ISO mode, several standard
  160.              UNIX symbols (for example, eennvviirroonn, eenndd) may only be
  161.              referenced by their ANSI/ISO-compliant counterparts (for
  162.              example, __eennvviirroonn, __eenndd).  The type lloonngg lloonngg is allowed, but
  163.              results in a warning.  To take advantage of this type in
  164.              libraries that refer to ____iinntt6644__tt and ____uuiinntt6644__tt, you must
  165.              define the macro ____LLOONNGGLLOONNGG on the command line; otherwise,
  166.              ____iinntt6644__tt and ____uuiinntt6644__tt are defined as structs.
  167.  
  168.      --aannssiiEE  (CCCC only) Issues an error message on all code that is not
  169.              standard-conforming.  Available in ANSI/ISO C conformance (see
  170.              --aannssii).
  171.  
  172.      --aannssiiWW  (CCCC only) Issues a warning message on all code that is not
  173.              standard-conforming.  This is the default in pure ANSI/ISO C
  174.              mode.  Available in ANSI/ISO C conformance (see --aannssii).
  175.  
  176.      --aappoo, --aappookkeeeepp, --aappoolliisstt
  177.              For --nn3322 and --6644, it invokes the Auto-Parallelizing Option
  178.              (APO), which automatically converts sequential code into
  179.              parallel code by inserting parallel directives where it is
  180.              safe and beneficial to do so.  Specifying --aappoo also sets the
  181.              --mmpp option.  Both --aappookkeeeepp and --aappoolliisstt produce a listing
  182.              file, _f_i_l_e..lliisstt.  Specifying --aappookkeeeepp retains _f_i_l_e..aannll and
  183.              _f_i_l_e..mm, which can be used by the parallel analyzer, ProDev
  184.              ProMP (see the EXAMPLES section).  When the --IIPPAA option is
  185.              specified with --aappookkeeeepp, the default settings for IPA
  186.              suboptions are used with the exception of --IIPPAA::iinnlliinnee, which
  187.              is set to OOFFFF.
  188.  
  189.              APO is invoked only if you are licensed for it.  For licensing
  190.              information, see your sales representative.
  191.  
  192.              For more information on APO, its directives, and command-line
  193.              options, see _M_I_P_S_p_r_o _C _a_n_d _C++ _P_r_a_g_m_a_s.
  194.  
  195.              When specifying the --oo3322 option on the cccc command line, --aappoo
  196.              invokes the IRIS Power C analyzer (PCA).  See the --ppccaa option
  197.              description.
  198.  
  199.      --aarr     Creates an archive using aarr(1) instead of a shared object or
  200.              executable.  The name of the archive is specified by using the
  201.              --oo option.  Template entities required by the objects being
  202.              archived are instantiated before creating the archive.  The CCCC
  203.              command implicitly passes the --rr and --cc options of aarr to aarr in
  204.              addition to the name of the archive and the objects being
  205.              created.  Any other option that can be used in conjunction
  206.              with the --cc option of aarr can be passed to aarr using
  207.              --WWRR,,ooppttiioonn__nnaammee.  For more information, see the aarr(1) man
  208.              page.
  209.  
  210.              NOTE: The objects specified with this option must include all
  211.              of the objects that will be included in the archive.  Failure
  212.              to do so may cause prelinker internal errors.  In the
  213.              following example, lliibbaa..aa is an archive containing only aa..oo,
  214.              bb..oo and cc..oo.  The aa..oo, bb..oo and cc..oo objects are prelinked to
  215.              instantiate any required template entities, and the aarr --rr --cc
  216.              --vv lliibbaa..aa aa..oo bb..oo cc..oo ccoommmmaanndd iiss eexxeeccuutteedd..  AAllll tthhrreeee oobbjjeeccttss
  217.              mmuusstt bbee ssppeecciiffiieedd wwiitthh --aarr eevveenn iiff oonnllyy bb..oo nneeeeddss ttoo bbee
  218.              rreeppllaacceedd iinn lliibb..aa..
  219.  
  220.           CC -ar -WR,-v -o liba.a a.o b.o c.o
  221.  
  222.              See the lldd(1) man page for more information about shared
  223.              libraries and archives.
  224.  
  225.      --aauuttoo__iinncclluuddee
  226.      --nnoo__aauuttoo__iinncclluuddee
  227.              (CCCC only) The default is --aauuttoo__iinncclluuddee.  The compiler
  228.              implicitly includes template definition files if such
  229.              definitions are needed. --nnoo__aauuttoo__iinncclluuddee disables implicit
  230.              inclusion of template implementation files.  See the _C++
  231.              _P_r_o_g_r_a_m_m_e_r'_s _G_u_i_d_e for more information on using templates.
  232.  
  233.      --bbiiggpp__ooffff
  234.              Disables the use of large pages within your program.  This is
  235.              the default for all optimization levels except --OOffaasstt.
  236.  
  237.      --bbiiggpp__oonn
  238.              Enables the use of large pages within your program.  Once your
  239.              program is compiled with this flag, you must also set the
  240.              PPAAGGEESSIIZZEE__DDAATTAA, PPAAGGEESSIIZZEE__SSTTAACCKK, and PPAAGGEESSIIZZEE__TTEEXXTT environment
  241.              variables to be one of the values 16, 256, 1024, 4096, 16384
  242.              (representing the size in kilobytes of the pages you want to
  243.              use).  If these environment variables are not set, then by
  244.              default your program will use 16KB pages.  This flag is turned
  245.              on when --OOffaasstt is specified.
  246.  
  247.      --bbrriieeff__ddiiaaggnnoossttiiccss
  248.              Issues one-line diagnostic messages.
  249.  
  250.      --cc      Creates a relocatable object file for each named source file,
  251.              but does not link the object files.  The relocatable object
  252.              file name corresponds to the name of the source file; a ..oo
  253.              suffix is substituted for the suffix of the source file.
  254.  
  255.      --cccckkrr   (cccc only) See the --aannssii option description.
  256.  
  257.      --ccffrroonntt (CCCC only) Causes the compiler to accept constructs that were
  258.              accepted by previous cfront-based compilers, such as OOCCCC, but
  259.              which are not accepted in the ANSI/ISO standard.
  260.  
  261.      --cclliisstt  Enables the C listing.  Specifying --cclliisstt is the equivalent of
  262.              specifying --CCLLIISSTT::==OONN.
  263.  
  264.      --CCLLIISSTT:: ......
  265.              Controls emission of the compiler's internal program
  266.              representation back into C code, after IPA inlining and loop-
  267.              nest transformations.  This is a diagnostic tool, and the
  268.              generated C code may not always be compilable.  The generated
  269.              C code is written to two files, a header file containing
  270.              file-scope declarations, and a file containing function
  271.              definitions.  The individual controls in this group are as
  272.              follows:
  273.  
  274.              == (( OONN||OOFFFF ))
  275.                   Enables the C listing.  This option is implied by any of
  276.                   the others, but may be used to enable the listing when no
  277.                   other options are required.  For example, specifying
  278.                   --CCLLIISSTT::==OONN is the equivalent of specifying --cclliisstt.
  279.  
  280.              ddoottcc__ffiillee== _f_i_l_e_n_a_m_e
  281.                   Writes the program units into the specified file,
  282.                   _f_i_l_e_n_a_m_e.  The default source file name has the extension
  283.                   ..ww22cc..cc.
  284.  
  285.              ddootthh__ffiillee== _f_i_l_e_n_a_m_e
  286.                   Specifies the file into which file-scope declarations are
  287.                   deposited.  Defaults to the source file name with the
  288.                   extension ..ww22cc..hh.
  289.  
  290.              eemmiitt__oommpp [[ == (( OONN||OOFFFF ))]]
  291.                   When OONN is specified, generated files use OpenMP
  292.                   directives (default).  When OOFFFF is specified, generated
  293.                   files use MIPS multiprocessing directives, which are
  294.                   outmoded.
  295.  
  296.              eemmiitt__ppffeettcchh [[ == (( OONN||OOFFFF ))]]
  297.                   Displays prefetch information as comments in the
  298.                   transformed source.  If OONN or OOFFFF is not specified, the
  299.                   default is OOFFFF.
  300.  
  301.              lliinneelleennggtthh== _n
  302.                   Sets the maximum line length to _n characters.  The
  303.                   default is unlimited.
  304.  
  305.              sshhooww [[ == (( OONN||OOFFFF ))]]
  306.                   Prints the input and output file names to stderr.  If OONN
  307.                   or OOFFFF is not specified, the default is OONN.
  308.  
  309.      --ccoommmmoonn Relaxes the ANSI/ISO C Strict-Ref/Def-initialization model to
  310.              the traditional IRIX Relaxed Ref/Def model.  With --ccoommmmoonn, the
  311.              declaration iinntt ii;; in multiple files at file level is merged.
  312.              Without it, ANSI/ISO C generates a warning (from lldd(1)) about
  313.              duplicate definitions.  When C and Fortran compiled objects
  314.              are linked together and an ANSI C defined variable should be
  315.              located at the same address as a Fortran common block, you
  316.              must compile the C source with the --ccoommmmoonn flag.  When
  317.              compiling in traditional K&R/Version7 C mode (see --cccckkrr), the
  318.              --ccoommmmoonn option is ignored.
  319.  
  320.      --DD _n_a_m_e=_d_e_f
  321.      --DD _n_a_m_e Define _n_a_m_e to the macro preprocessor, as if by ##ddeeffiinnee.  If
  322.              no definition is given, _n_a_m_e is defined as 11.
  323.  
  324.      --DDEEBBUUGG:: ......
  325.              Controls compiler features related to debugging, such as
  326.              checking for possible errors (at compile time or execution
  327.              time), or controlling the treatment of warning messages.  See
  328.              the DDEEBBUUGG__ggrroouupp((55)) man page for more information, including
  329.              the individual options in this group.  See also the --gg option
  330.              for controlling emission of information for the debugger.
  331.  
  332.      --ddiiaagg__eerrrroorr _n_u_m_b_e_r_l_i_s_t
  333.              Treats messages with the specified numbers as errors and does
  334.              not generate an object file.  _n_u_m_b_e_r_l_i_s_t is a comma-separated
  335.              list of message numbers.
  336.  
  337.      --ddiiaagg__rreemmaarrkk _n_u_m_b_e_r_l_i_s_t
  338.              Treats messages with the specified numbers as remarks unless
  339.              they are nondiscretionary errors.  _n_u_m_b_e_r_l_i_s_t is a comma-
  340.              separated list of message numbers.  The messages specified by
  341.              this option are reported only if --ffuullllwwaarrnn is specified.
  342.  
  343.      --ddiiaagg__ssuupppprreessss _n_u_m_b_e_r_l_i_s_t
  344.              Equivalent to specifying --wwooffff _n_u_m_b_e_r_l_i_s_t.  _n_u_m_b_e_r_l_i_s_t is a
  345.              comma-separated list of message numbers.
  346.  
  347.      --ddiiaagg__wwaarrnniinngg _n_u_m_b_e_r_l_i_s_t
  348.              Treats messages with the specified numbers as warnings unless
  349.              they are nondiscretionary errors.  _n_u_m_b_e_r_l_i_s_t is a comma-
  350.              separated list of message numbers.  If ww is also specified,
  351.              the messages specified by this option are not reported.
  352.  
  353.      --ddoollllaarr Allows the dollar sign ($) as a character in C identifiers
  354.              (including the leading character of an identifier).  The
  355.              option is provided solely for compatibility purposes.  The
  356.              dollar sign is not a standard C identifier character and its
  357.              use is not recommended.
  358.  
  359.      --EE      Runs only the preprocessor phase on the source files and sends
  360.              the result to standard output.  The resultant output will
  361.              contain line directives.  This option overrides the --nnooccpppp
  362.              option.
  363.  
  364.      --ffbb <<_f_i_l_e>>
  365.              Specifies the feedback file (_f_i_l_e) to be used as input to the
  366.              compilation.  This feedback file can be produced by using
  367.              pprrooff(1) with its --ffeeeeddbbaacckk option from one or more ..CCoouunnttss
  368.              files generated by the execution of the instrumented program
  369.              produced by ppiixxiiee(1).
  370.  
  371.      --ffbb__ccrreeaattee <<_p_a_t_h>
  372.              Generates an instrumented executable program which is suitable
  373.              for producing one or more ..iinnssttrr files for subsequent feedback
  374.              compilation.  When the --cc option is used to produce an object
  375.              file that eventually linked to form an instrumneted
  376.              executable, the --ffbb__ccrreeaattee option should also be specified.
  377.              The executable will be instrumented with special instructions
  378.              that generates information that the compiler can use to better
  379.              optimize your program.  When this instrumented executable is
  380.              run (usually with a representative "training" inputset) that
  381.              information is stored in a file call aa..oouutt..iinnssttrr..<<_p_i_d>> in the
  382.              <_p_a_t_h> directory that you specified.  The path should be a
  383.              complete path that also includes the name of the executable.
  384.              For example, //ttmmpp//ffbbddiirr//aa..oouutt would produce a file called
  385.              //ttmmpp//ffbbddiirr//aa..oouutt..iinnssttrr..<<_p_i_d>> where <_p_i_d> is the process id of
  386.              the invocation of your instrumented program run with a
  387.              training input.
  388.  
  389.      --ffbb__oopptt <_p_a_t_h>
  390.              Specifies the directory that contains the instrumentation
  391.              output generated by compiling with --ffbb__ccrreeaattee and then running
  392.              your program with a training inputset.  This tells the
  393.              compiler to use this information to better optimize your
  394.              program.  When the --cc option is used to produce an object file
  395.              that is eventually linked to form an instrumented executable,
  396.              the --ffbb__oopptt option should also be specified.
  397.  
  398.      --ffbbggeenn  Generates an instrumented executable program.  Such an
  399.              executable is suitable for producing one or more ..CCoouunnttss files
  400.              for feedback compilation.  When the --cc option is used to
  401.              produce an object file that is eventually linked to form an
  402.              instrumented executable, the --ffbbggeenn option should also be
  403.              specified.  If the --cc option is not specified, ppiixxiiee(1) is run
  404.              automatically to instrument the generated executable.  Run the
  405.              ..xx executable file that is generated without the ..xx suffix.
  406.  
  407.      --ffbbuussee <<_f_i_l_e>>
  408.              Specifies a ..CCoouunnttss file that is used to guide feedback
  409.              compilation.  The specified file is used along with the
  410.              instrumented binary that produced the ..CCoouunnttss file to generate
  411.              a compiler feedback file, which is then used to direct
  412.              optimization of the program.  Run the ..xx executable file that
  413.              is generated without the ..xx suffix.
  414.  
  415.      --FFEE::eelliimmiinnaattee__dduupplliiccaattee__iinnlliinnee__ccooppiieess
  416.              (CCCC only) Eliminates duplicate copies of functions that are
  417.              declared inline but for which an out-of-line copy must be
  418.              generated (typically, these are destructors or virtual
  419.              functions).  Specifying this option may alleviate the problem
  420.              of large executables or DSOs built with the default template
  421.              instantiation options.
  422.  
  423.      --FFEE::tteemmppllaattee__iinn__eellff__sseeccttiioonn
  424.              (CCCC only) Eliminates duplicate template instantiations from an
  425.              executable or DSO.  This option should be used when the
  426.              --ppttuusseedd option is specified to avoid duplicate template
  427.              instantiations in the executable or DSO.
  428.  
  429.      --ffllooaatt  The --ffllooaatt option is ignored in ANSI/ISO C conformance mode
  430.              and only has effect in --cccckkrr mode.  ANSI/ISO C conformance
  431.              mode uses single precision floating-point operations where
  432.              allowed by the Standard.  This option causes the compiler to
  433.              use single-precision floating-point whenever float is
  434.              specified (except in function arguments).  In the following
  435.              example, aa and bb are promoted to double and a double-precision
  436.              multiply is done, followed by a conversion back to single-
  437.              precision for the assignment to cc.
  438.  
  439.  
  440.              ffllooaatt aa;; iinntt bb;; ffllooaatt cc;; cc == aa ** bb;;
  441.  
  442.              bb is promoted to single-precision and a single-precision
  443.              multiply is done.  This option does not affect float and
  444.              double argument passing; float function arguments are promoted
  445.              to double unless function prototypes are used.  Unsuffixed
  446.              floating-point constants are cast to single precision values
  447.              in subexpressions with no double (or long double) operands.
  448.  
  449.      --ffllooaatt__ccoonnsstt
  450.              Interprets floating point constants without precision suffixes
  451.              as single-precision whenever doing so will not lose precision
  452.              and the context is otherwise single-precision.  This may
  453.              prevent unnecessary conversions between single- and double-
  454.              precision in ANSI/ISO C conformance mode when the variables
  455.              involved have all been declared as float but the constants
  456.              have not been appended with ff.
  457.  
  458.      --ffuullllwwaarrnn
  459.              Performs various extra checks and produces additional warnings
  460.              that are normally suppressed by default.  For --nn3322 and --6644,
  461.              these warnings are called remarks.
  462.  
  463.      --GG _n_u_m  Specifies the maximum size (in bytes) of a data item that is
  464.              to be accessed from the global pointer.  _n_u_m must be a
  465.              positive integral number.  If _n_u_m is zero, no data is accessed
  466.              from the global pointer.  For --nn3322 or --6644, the default value
  467.              is 8 bytes.  For --oo3322 shared compiles, the default is 0 bytes;
  468.              for nonshared, the default is 8 bytes.
  469.  
  470.              Data stored relative to the global pointer can be accessed by
  471.              the program quickly, but this space is limited.  Large
  472.              programs may overflow the space accessed by the global pointer
  473.              at load time.  If the loader gives the error message BBaadd --GG
  474.              nnuumm vvaalluuee, recompile specifying a lower value for _n (or add
  475.              --GG00 if no --GG was specified.  You should usually use the same
  476.              value of this switch for compiling all files that comprise a
  477.              program executable for DSO.
  478.  
  479.      --gg[_n]   Specifies the debugging information produced by the compiler.
  480.              _n can be one of the following:
  481.  
  482.              00   No debugging information for symbolic debugging is
  483.                  produced.  This is the default.
  484.  
  485.              22   Produces additional debugging information for full
  486.                  symbolic debugging.  Optimizations that limit full
  487.                  symbolic debugging are not done.  This overrides the
  488.                  optimization options (--OO, --OO11, --OO22, --OO33).
  489.  
  490.              33   Produces additional debugging information for symbolic
  491.                  debugging of fully optimized code, which makes the
  492.                  debugger inaccurate.  This can be used with the
  493.                  optimization options (--OO, --OO11, --OO22, --OO33).
  494.  
  495.              Specifying --gg without a debug level is equivalent to
  496.              specifying --gg22.
  497.  
  498.      --ggsslliimm  (CCCC only) Limits the amount of debugging information generated
  499.              by the compiler for class definitions.  You can use this
  500.              option on large applications when you experience bloated
  501.              object files, executables, or DSOs when compiling with the --gg
  502.              option.  If you specify --ggsslliimm instead of --gg, debugging
  503.              information for any class with non-inline member functions is
  504.              generated only in translation units containing a definition
  505.              for one of those non-inline member functions.  Otherwise, the
  506.              effect of specifying --ggsslliimm is the same as that of specifying
  507.              --gg.  If both --gg and --ggsslliimm are specified, the effect is the
  508.              same as if only --ggsslliimm was specified, regardless of the order
  509.              in which the options are specified on the command line.
  510.  
  511.      --hheellpp   Lists all of the available options.
  512.  
  513.      --II _d_i_r  Searches directories for ##iinncclluuddee files whose names do not
  514.              begin with //.  Directories are searched in the following
  515.              order:  directory of the _f_i_l_e argument, directories specified
  516.              in --II options, and the standard directory (//uussrr//iinncclluuddee).
  517.  
  518.      --iiggnnoorree__ssuuffffiixx
  519.              Determines the language of the source file being compiled by
  520.              the command used to invoke the compiler.  By default, the
  521.              language is determined by the file suffixes (..cc, ..ccpppp, ..CC,
  522.              ..ccxxxx, ..ff, ..ff9900, ..ss).  When the --iiggnnoorree__ssuuffffiixx option is
  523.              specified, the cccc command invokes the C compiler.
  524.  
  525.      --IINNLLIINNEE:: ......
  526.              The standalone inliner option group controls application of
  527.              intra-file subprogram inlining when interprocedural analysis
  528.              is not enabled (see the --IIPPAA description).  See the iippaa((55)) man
  529.              page for more information, including the individual options in
  530.              this group.
  531.  
  532.      --IIPPAA:: ......
  533.              The inter-procedural analyzer option group controls
  534.              application of inter-procedural analysis and optimization,
  535.              including inlining, constant propagation, common block array
  536.              padding, dead function elimination, alias analysis, and
  537.              others.  Specify --IIPPAA by itself to invoke the interprocedural
  538.              analysis phase with default options.  If you compile and link
  539.              in distinct steps, you must specify at least --IIPPAA for the
  540.              compile step, and specify --IIPPAA and the individual options in
  541.              the group for the link step.  If you specify --IIPPAA for the
  542.              compile step, and do not specify --IIPPAA for the link step, you
  543.              will receive an error.  See the iippaa(5) man page for more
  544.              information, including the individual options in this group.
  545.  
  546.      --JJ #    (CCCC only) Specifies the maximum number of concurrent compiles
  547.              that the C++ prelinker is allowed to run at once.  This option
  548.              overrides the number of concurrent compiles that the prelinker
  549.              determines using the following rules:  The maximum number of
  550.              concurrent compiles is set to 1 unless the prelinker is a
  551.              descendent of an ssmmaakkee(1) or a ppmmaakkee command that specifies
  552.              the number of jobs using the --JJ option, then # is used as the
  553.              value for the number of concurrent compiles.  If the prelinker
  554.              is a descendent of an ssmmaakkee or ppmmaakkee command without the --JJ
  555.              option, the maximum number of concurrent compiles is set to 2
  556.              on a single processor system and 4 on a multi-processor that
  557.              has more than 1 unrestricted processor.
  558.  
  559.      --KKPPIICC   Generates position-independent code (PIC).  This is the
  560.              default and is needed for programs linking with dynamic shared
  561.              libraries.  If you do not want to generate PIC, specify
  562.              --nnoonn__sshhaarreedd on the command line.
  563.  
  564.      --LL _d_i_r_e_c_t_o_r_y
  565.              In XPG4 mode, changes the algorithm of searching for libraries
  566.              named in --LL operands to look in the specified directory before
  567.              looking in the default location.  Directories specified in --LL
  568.              options are searched in the specified order.  Multiple
  569.              instances of --LL options can be specified.
  570.  
  571.      --ll _l_i_b_r_a_r_y
  572.              In XPG4 mode, searches the specified _l_i_b_r_a_r_y.  A library is
  573.              searched when its name is encountered, so the placement of a
  574.              --ll operand is significant.
  575.  
  576.      --LLAANNGG:: ......
  577.              The language feature option group controls the source language
  578.              interpretation assumed by the compiler.  The individual
  579.              controls in this group are as follows:
  580.  
  581.              aalliiaass__ccoonnsstt [[ == (( OONN||OOFFFF ))]]
  582.                  Enables or disables optimization across functions with
  583.                  ccoonnsstt reference parameters.  Assumes that a ccoonnsstt
  584.                  reference parameter is NOT modified by the called
  585.                  function.  See the release notes for details and examples
  586.                  of this optimization.  Default is OFF.
  587.  
  588.                  NOTE: For this optimization to work correctly, both the
  589.                  caller and the callee have to be compiled with
  590.                  --LLAANNGG::aalliiaass__ccoonnsstt.
  591.  
  592.              aannssii--ffoorr--iinniitt--ssccooppee [[ == (( OONN||OOFFFF )) ]]
  593.                  Enables or disables the ANSI scoping rules for ffoorr--iinniitt
  594.                  declarations (the scope of the name declared extends to
  595.                  the end of the ffoorr statement).  This enables the behavior
  596.                  that is required by the C++ standard.  The default value
  597.                  is OFF, which is the ARM behavior (the scope of the name
  598.                  declared extends to the end of the block enclosing the ffoorr
  599.                  statement).
  600.  
  601.              bbooooll [[ == (( OONN||OOFFFF ))]]
  602.                  Enables or disables the predefined bool data type, along
  603.                  with the predefined values true and false.  Use this
  604.                  option only to suppress this type in old code that defines
  605.                  bool itself.  Because this option changes the mangling of
  606.                  function names with bool parameters, all files comprising
  607.                  a program should be compiled with consistent options.
  608.                  Default is ON.
  609.  
  610.                  The __BBOOOOLL feature macro can be used in ##iiffddeeffs to do
  611.                  conditional compilation based on whether or not this
  612.                  option is enabled.
  613.  
  614.              ccrreeaattee__ppcchh==_f_i_l_e-_n_a_m_e
  615.                  Creates a precompiled header with the specified _f_i_l_e-_n_a_m_e.
  616.                  This option cannot be specified with --LLAANNGG::ppcchh or
  617.                  --LLAANNGG::uussee__ppcchh.
  618.  
  619.              eexxcceeppttiioonnss [[ == (( OONN||OOFFFF ))]]
  620.                  Enables or disables exception handling constructs in the
  621.                  language.  Generally, code with and without exception
  622.                  handling cannot be mixed.  Specifically, the scopes
  623.                  crossed between throwing and catching an exception must
  624.                  all have been compiled with eexxcceeppttiioonnss==OONN.  Default is ON.
  625.  
  626.                  In the O32-bit mode, exceptions are OFF by default and can
  627.                  be turned on by the --eexxcceeppttiioonnss flag.  See the --oo3322(5) man
  628.                  page for details.
  629.  
  630.                  The feature macro ____EEXXCCEEPPTTIIOONNSS can be used in ##iiffddeeffss to
  631.                  do conditional compilation based on whether or not this
  632.                  option is enabled.
  633.  
  634.              eexxpplliicciitt [[ == (( OONN||OOFFFF ))]]
  635.                  Enables or disables the recognition of explicit as a
  636.                  keyword.  Default is ON.
  637.  
  638.                  The __EEXXPPLLIICCIITT__IISS__KKEEYYWWOORRDD feature macro can be used in
  639.                  ##iiffddeeffs to do conditional compilation based on whether or
  640.                  not this option is enabled.
  641.  
  642.              mmuuttaabbllee [[ == (( OONN||OOFFFF ))]]
  643.                  Enables or disables the recognition of mutable as a
  644.                  keyword.  Default is ON.
  645.  
  646.                  The __MMUUTTAABBLLEE__IISS__KKEEYYWWOORRDD feature macro can be used in
  647.                  ##iiffddeeffss to do conditional compilation based on whether or
  648.                  not this option is enabled.
  649.  
  650.              nnaammeessppaacceess [[ == (( OONN||OOFFFF ))]]
  651.                  Enables or disables namespace feature of the language.
  652.                  This feature changes the signature of functions and for
  653.                  backward compatibility, the library functions in lliibbCC
  654.                  continue to be in global namespace.  Default is ON.
  655.  
  656.              ppcchh [[ == (( OONN||OOFFFF ))]]
  657.                  Automatically uses or creates a precompiled header file.
  658.                  This option cannot be specified with --LLAANNGG::uussee__ppcchh or
  659.                  --LLAANNGG::ccrreeaattee__ppcchh.
  660.  
  661.                  A precompiled header file contains a snapshot of all the
  662.                  code preceding the "header stop" point, which is generally
  663.                  the first token in the primary source file that does not
  664.                  belong to a preprocessing directive.  Use of precompiled
  665.                  headers may speed up compilation in certain cases.  For
  666.                  details on precompiled header files, see the _M_I_P_S_p_r_o
  667.                  _C_o_m_p_i_l_i_n_g _a_n_d _P_e_r_f_o_r_m_a_n_c_e _T_u_n_i_n_g _G_u_i_d_e.
  668.  
  669.              ppcchh__ddiirr==_d_i_r_e_c_t_o_r_y-_n_a_m_e
  670.                  Searches _d_i_r_e_c_t_o_r_y-_n_a_m_e and/or creates a precompiled
  671.                  header file.  This option can be specified with --LLAANNGG::ppcchh,
  672.                  --LLAANNGG::ccrreeaattee__ppcchh, and --LLAANNGG::uussee__ppcchh.  When specified with
  673.                  --LLAANNGG::ccrreeaattee__ppcchh or --LLAANNGG::uussee__ppcchh, the indicated filename
  674.                  is appended to the directory specified by this name,
  675.                  unless the file name is an absolute path name.
  676.  
  677.              rreessttrriicctt==OONN
  678.                  Enables support for the restrict keyword in the language.
  679.  
  680.              ssttdd Enables use of the standard C++ library and standard-
  681.                  conforming iostream library.  Specifying this flag also
  682.                  triggers other standard-conforming behavior, such as the
  683.                  new rules for the scope of ffoorr loop initializers.
  684.  
  685.                  The following example shows how to use the complex header
  686.                  in conjunction with --LLAANNGG::ssttdd:
  687.  
  688.                #ifdef _STANDARD_C_PLUS_PLUS
  689.                    // If -LANG:std is specified, it defines the macro
  690.                    // in the preceding line.  Use new-style headers
  691.                    // and a using directive to bring names from the
  692.                    // std namespace into the global namespace.
  693.                    #include<complex>
  694.                    #include<iostream>
  695.                    using namespace std;
  696.                #else
  697.                    // If -LANG:std is not specified, use old-style headers,
  698.                    // and there is no need for a using directive.
  699.                    #include<complex.h>
  700.                    #include<iostream.h>
  701.                #endif
  702.  
  703.                complex<float> x(1,2);
  704.  
  705.                main() {
  706.                   cout << x << '0;
  707.                   cout << sqrt( x ) << '0;
  708.                }
  709.  
  710.                  For more information on the standard C++ library and
  711.                  standard-conforming iostream library, see the MIPSpro 7.3
  712.                  release notes (you can use the rreellnnootteess(1) command) or the
  713.                  C++ standard documentation.
  714.  
  715.              ttyyppeennaammee [[ == (( OONN||OOFFFF ))]]
  716.                  Enables or disables the recognition of typename as a
  717.                  keyword.  Default is ON.
  718.  
  719.              uussee__ppcchh==_f_i_l_e-_n_a_m_e
  720.                  Specifies the precompiled header, _f_i_l_e-_n_a_m_e, if it is
  721.                  valid for this compilation unit.  The compilation proceeds
  722.                  with a warning if the ppcchh file cannot be used.  This
  723.                  option cannot be specified with --LLAANNGG::ppcchh or
  724.                  --LLAANNGG::ccrreeaattee__ppcchh.
  725.  
  726.              wwcchhaarr__tt [[ == (( OONN||OOFFFF ))]]
  727.                  Enables or disables the predefined wwcchhaarr__tt data type.  Use
  728.                  this option only to suppress this type in old code that
  729.                  defines wwcchhaarr__tt itself.  Because this option changes the
  730.                  mangling of function names with wwcchhaarr__tt parameters, all
  731.                  files that comprise a program should be compiled with
  732.                  consistent options.  Default is ON.
  733.  
  734.                  The feature macro __WWCCHHAARR__TT__IISS__KKEEYYWWOORRDD can be used in
  735.                  ##iiffddeeffs to do conditional compilation based on whether or
  736.                  not this option is enabled.
  737.  
  738.              vvllaa [[ == (( OONN||OOFFFF ))]]
  739.                  Provides the C9X extension for variable length arrays.
  740.                  The default for cccc is OONN; the default for CCCC is OOFFFF.
  741.  
  742.      --LLIISSTT:: ......
  743.              The listing option flag controls information that gets written
  744.              to a listing (..ll) file.  The individual controls in this group
  745.              are:
  746.  
  747.              == (( OONN||OOFFFF )) Enables or disables writing the listing file.
  748.                           The default is OONN if any --LLIISSTT:: group options are
  749.                           enabled.  By default, the listing file contains a
  750.                           list of options enabled.
  751.  
  752.              aallll__ooppttiioonnss [[ == (( OONN||OOFFFF ))]]
  753.                           Enables or disables listing of most supported
  754.                           options.  The default is OOFFFF.
  755.  
  756.              nnootteess [[ == (( OONN||OOFFFF ))]]
  757.                           If an assembly listing is generated (for example,
  758.                           on --SS), various parts of the compiler (such as
  759.                           software pipelining) generate comments within the
  760.                           listing that describe what they have done.
  761.                           Specifying OOFFFF suppresses these comments.  The
  762.                           default is OONN.
  763.  
  764.              ooppttiioonnss [[ == (( OONN||OOFFFF ))]]
  765.                           Enables or disables listing of the options
  766.                           modified (directly in the command line, or
  767.                           indirectly as a side effect of other options).
  768.                           The default is OOFFFF.
  769.  
  770.              ssyymmbboollss [[ == (( OONN||OOFFFF ))]]
  771.                           Enables or disables listing of information about
  772.                           the symbols (variables) managed by the compiler.
  773.  
  774.      --LLNNOO    Specifies options and transformations performed on loop nests.
  775.              This option is enabled only if the --OO33 option is also
  776.              specified on the compiler command line.  For information on
  777.              the LNO options that are in effect during a compilation, use
  778.              the --LLIISSTT option.  See the llnnoo(5) man page for more
  779.              information, including the individual options in this group.
  780.  
  781.      --MM      Runs only the preprocessor on the named files and writes
  782.              mmaakkee(1) dependencies to standard output.
  783.  
  784.      --MMDDuuppddaattee _f_i_l_e_n_a_m_e
  785.              Updates _f_i_l_e_n_a_m_e to contain mmaakkee(1) dependencies for the
  786.              output file.  --MMDDuuppddaattee updates only lines in _f_i_l_e_n_a_m_e that
  787.              end with a distinctive mmaakkee comment and begin with the name of
  788.              the output file followed by a colon.  The standard option used
  789.              with mmaakkee(1) is --MMDDuuppddaattee MMaakkeeddeeppeenndd.
  790.  
  791.      --mmiippss_n  Specifies the Instruction Set Architecture (ISA).  _n can be
  792.              one of the following:
  793.  
  794.              11   Generates code using the instruction set of the
  795.                  R2000/R3000 RISC architecture, and searches for mips1
  796.                  libraries/objects at link-time.  This defaults to --oo3322.
  797.  
  798.              22   Generates code using the MIPS II instruction set (MIPS I +
  799.                  R4000 specific extensions), and searches for mips2
  800.                  libraries/objects at link-time.  This defaults to --oo3322.
  801.  
  802.              33   Generates code using the full MIPS III instruction set,
  803.                  and searches for mips3 libraries/objects at link-time.  If
  804.                  --nn3322 or --6644 are not specified, this defaults to --6644 on
  805.                  R8000-based systems and --nn3322 on all other systems.
  806.  
  807.              44   Generates code using the full MIPS IV instruction set
  808.                  which is supported on R10000, R5000 and R8000 systems, and
  809.                  searches for mips4 libraries/objects at link-time.  This
  810.                  is the default on R8000 systems.  If --nn3322 or --6644 are not
  811.                  specified, this defaults to --6644 on R8000-based systems and
  812.                  --nn3322 on all other systems.
  813.  
  814.      --MMPP:: ......
  815.              Specifies individual multiprocessing options that provide fine
  816.              control over certain optimizations.  You must also specify the
  817.              --mmpp option on the command line.  This enables all the --MMPP
  818.              options.
  819.  
  820.              The arguments to the --MMPP option are as follows:
  821.  
  822.                AArrgguummeenntt            AAccttiioonn
  823.  
  824.                cchheecckk__rreesshhaappee==_s_e_t_t_i_n_g
  825.                                    Enables or disables runtime consistency
  826.                                    checks across procedure boundaries when
  827.                                    passing reshaped arrays (or portions
  828.                                    thereof) as actual arguments.  Specify
  829.                                    OONN or OOFFFF for _s_e_t_t_i_n_g.  The default is
  830.                                    cchheecckk__rreesshhaappee==OOFFFF.
  831.  
  832.                cclloonnee==_s_e_t_t_i_n_g       Enables or disables autocloning.
  833.                                    Specify OONN or OOFFFF for _s_e_t_t_i_n_g.  The
  834.                                    compiler automatically duplicates
  835.                                    procedures that are called with reshaped
  836.                                    arrays as actual arguments for the
  837.                                    incoming distribution.  If you have
  838.                                    explicitly specified the distribution on
  839.                                    all relevant dummy arguments, you can
  840.                                    disable autocloning. The consistency
  841.                                    checking of the distribution between
  842.                                    actual and dummy arguments is not
  843.                                    affected by this option and is always
  844.                                    enabled.  The default is cclloonnee==OONN.
  845.  
  846.                ddssmm==_s_e_t_t_i_n_g (Origin series systems only)
  847.                                    Enables or disables recognition of the
  848.                                    distributed shared memory directives.
  849.                                    Specify OONN or OOFFFF for _s_e_t_t_i_n_g.  The
  850.                                    default is ddssmm==OONN.
  851.  
  852.                oolldd__mmpp==_s_e_t_t_i_n_g      Enables or disables recognition of the
  853.                                    Silicon Graphics multiprocessing
  854.                                    directives and the Origin series
  855.                                    distributed shared memory directives.
  856.                                    These directives are the loop-level
  857.                                    multiprocessing directives (including
  858.                                    those for Origin series systems) and the
  859.                                    PCA directives.  Specify OONN or OOFFFF for
  860.                                    _s_e_t_t_i_n_g.  The default is oolldd__mmpp==OONN.
  861.  
  862.                ooppeenn__mmpp==_s_e_t_t_i_n_g     Enables or disables recognition of the
  863.                                    OpenMP C/C++ API multiprocessing
  864.                                    directives and the Silicon Graphics
  865.                                    extensions to OpenMP.  These directives
  866.                                    begin with an oommpp prefix.  Specify OONN or
  867.                                    OOFFFF for setting.  The default is OONN.
  868.  
  869.      --mmpp     Generates multiprocessing code for the files being compiled.
  870.              This option causes the compiler to recognize all
  871.              multiprocessing directives.
  872.  
  873.              If you are licensed for APO, specify the --aappoo option which
  874.              invokes APO and sets the --mmpp option.  See the --aappoo option
  875.              description for details.
  876.  
  877.      --mmpplliisstt This option generates file ffiillee..ww22cc..cc.  If you are licensed
  878.              for APO, use the aappoolliisstt option.  See the --aappoolliisstt option
  879.              description for details.
  880.  
  881.              For more information on multiprocessing directives for the O32
  882.              ABI, see the _C _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l.
  883.  
  884.      --nnooccpppp  (cccc only) Does not run the preprocessor phase on the source
  885.              files.  This option is ignored when compiling a ..ii file.
  886.  
  887.      --nnooiinnlliinnee
  888.              Suppresses expansion of inline functions.  When this option is
  889.              specified, copies of inline functions are emitted as static
  890.              functions in each compilation unit where they are called.  It
  891.              is preferable to use --IINNLLIINNEE::==OOFFFF or --IIPPAA::iinnlliinnee==OOFFFF if you
  892.              are using IPA (see iippaa(5)).  One of these options must be
  893.              specified if you are using IPA.
  894.  
  895.      --nnoonn__sshhaarreedd
  896.              Builds a nonshared object.  This is the opposite of --KKPPIICC.
  897.              The --nnoonn__sshhaarreedd option causes the linker to search the
  898.              nnoonnsshhaarreedd subdirectory of each default library search
  899.              directory.  For more information, see the lldd(1) man page.  The
  900.              linker defaults the archive extensions from ..ssoo to ..aa.  The
  901.              appropriate nonshared library images must be installed.
  902.  
  903.      --nnoo__pprreelliinnkk
  904.              (CCCC only) See the --pprreelliinnkk option description.
  905.  
  906.      --nnoonnee   Turns off the effects of --aallll for the remainder of the command
  907.              line.  This option cannot be specified with the --cc option.
  908.  
  909.              See the lldd(1) man page for more information about shared
  910.              libraries and archives.
  911.  
  912.      --nnoossttddiinncc
  913.              Does not search for ##iinncclluuddee files in the standard directory
  914.              (//uussrr//iinncclluuddee).
  915.  
  916.      --oo _o_u_t_f_i_l_e
  917.              When this option is used in conjunction with the --cc option and
  918.              a single C source file, a relocatable object file named
  919.              _o_u_t_f_i_l_e is produced.  When specified with the --SS option, the
  920.              --oo option is ignored.  If --oo and --cc are not specified, a file
  921.              named aa..oouutt is produced.
  922.  
  923.      --OO[_n]   Specifies the basic level of optimization desired.  _n can be
  924.              one of the following:
  925.  
  926.              00    Turns off all optimizations.  This is the default.
  927.  
  928.              11    Turns on local optimizations that can be done quickly.
  929.  
  930.              22    Turns on extensive optimization.  The optimizations at
  931.                   this level are generally conservative, in the sense that
  932.                   they are virtually always beneficial, provide
  933.                   improvements commensurate to the compile time spent to
  934.                   achieve them, and avoid changes which affect such things
  935.                   as floating point accuracy.
  936.  
  937.              33    Turns on aggressive optimization.  The optimizations at
  938.                   this level are distinguished from --OO22 by their
  939.                   aggressiveness, generally seeking highest-quality
  940.                   generated code even if it requires extensive compile
  941.                   time.  They may include optimizations that are generally
  942.                   beneficial but may hurt performance.
  943.  
  944.                   This option also enables the --OOPPTT::rroouunnddooffff==22 option which
  945.                   does aggressive rearrangement of floating point
  946.                   calculations with potential effects on accuracy.  See the
  947.                   oopptt(5), iippaa(5), and llnnoo(5) man pages for additional
  948.                   information on general optimization, standalone inliner
  949.                   and interprocedural analysis, and loop nest optimizer,
  950.                   respectively.
  951.  
  952.                   If no value is specified for _n, 2 is assumed.
  953.  
  954.      --OOffaasstt [[ == _i_p_x_x]]
  955.              Selects optimizations that maximize performance for the given
  956.              SGI target platform, _i_p_x_x.  These optimizations may differ
  957.              between releases of the compiler and among the supported
  958.              platforms.  They enable the full instruction set of the target
  959.              platform (for example, --mmiippss44 for an R10000).  Although the
  960.              optimizations are generally safe, they may affect floating
  961.              point accuracy due to rearrangement of computations (for
  962.              examples, see the --OOPPTT::rroouunnddooffff==33 and --OOPPTT::ddiivv__sspplliitt options
  963.              in the oopptt(5) man page).  Typical optimizations include --OO33,
  964.              --IIPPAA, --TTAARRGG::ppllaattffoorrmm==_i_p_x_x, --nn3322, and
  965.              --OOPPTT::OOlliimmiitt==00::rroouunnddooffff==33::ddiivv__sspplliitt==OONN::aalliiaass==ttyyppeedd.  See the
  966.              --TTAARRGG::ppllaattffoorrmm==_i_p_x_x option for information about the optional
  967.              argument.  To determine which options are set by --OOffaasstt, use
  968.              the --LLIISSTT::ooppttiioonnss option.  The default is an R10000 Power
  969.              Challenge, IP25.
  970.  
  971.      --OOPPTT::......
  972.              Controls miscellaneous optimizations.  This option overrides
  973.              default optimizations.  See the oopptt(5) man page for more
  974.              information, including the individual options in this group.
  975.  
  976.      --PP      Runs only the preprocessor and puts the result for each source
  977.              file in a corresponding ..ii file.  The ..ii file has no inline
  978.              directives in it.
  979.  
  980.      --ppccaa, ppccaakkeeeepp, ppccaalliisstt
  981.              (cccc only; --oo3322 only) Invokes the Power C analyzer (PCA), an
  982.              optimization preprocessor that concurrentizes C by
  983.              restructuring certain parts of code and adding parallel
  984.              programming directives where possible.  ppccaakkeeeepp produces the
  985.              file containing the concurrentized C source code, _f_i_l_e..mm.
  986.              ppccaalliisstt _p_r_o_d_u_c_e_s _t_h_e _a_n_n_o_t_a_t_e_d _l_i_s_t_i_n_g _f_i_l_e, _f_i_l_e..ll.  _W_h_e_n _t_h_e
  987.              --IIPPAA _o_p_t_i_o_n _i_s _s_p_e_c_i_f_i_e_d _w_i_t_h ppccaakkeeeepp, _t_h_e _d_e_f_a_u_l_t _s_e_t_t_i_n_g_s
  988.              _f_o_r _I_P_A _s_u_b_o_p_t_i_o_n_s _a_r_e _u_s_e_d _w_i_t_h _t_h_e _e_x_c_e_p_t_i_o_n _o_f --IIPPAA::iinnlliinnee,
  989.              _w_h_i_c_h _i_s _s_e_t _t_o OOFFFF.
  990.  
  991.              _P_C_A _i_s _i_n_v_o_k_e_d _o_n_l_y _i_f _y_o_u _a_r_e _l_i_c_e_n_s_e_d _f_o_r _i_t.  _F_o_r _l_i_c_e_n_s_i_n_g
  992.              _i_n_f_o_r_m_a_t_i_o_n, _s_e_e _y_o_u_r _s_a_l_e_s _r_e_p_r_e_s_e_n_t_a_t_i_v_e.
  993.  
  994.              _F_o_r _m_o_r_e _i_n_f_o_r_m_a_t_i_o_n _a_b_o_u_t _P_C_A, _s_e_e _t_h_e _I_R_I_S _P_o_w_e_r _C _U_s_e_r'_s
  995.              _G_u_i_d_e.
  996.  
  997.              _F_o_r _t_h_e --nn3322 and --6644 ABIs, these options have been superseded
  998.              by the --aappoo, --aappookkeeeepp, and aappoolliisstt options, if you are
  999.              licensed for APO.
  1000.  
  1001.      --ppcchh    (CCCC only) Use the --LLAANNGG::ppcchh option instead.
  1002.  
  1003.      --ppeeddaannttiicc
  1004.              In ANSI/ISO mode, warns that the ##iiddeenntt preprocessor directive
  1005.              is nonstandard.
  1006.  
  1007.      --pprreelliinnkk
  1008.      --nnoo__pprreelliinnkk
  1009.              (CCCC only) The default is --pprreelliinnkk (along with --ppttnnoonnee).  It
  1010.              instructs the compiler to emit information in the object file,
  1011.              and in an associated ..iiii file to help the prelinker determine
  1012.              which files are responsible for instantiating the various
  1013.              template entities referenced in a set of object files.  When
  1014.              --pprreelliinnkk is on, the compiler reads the associated ..iiii file to
  1015.              determine if any template entities should be instantiated.
  1016.              When --pprreelliinnkk is on and a link is being performed, the driver
  1017.              calls a "template prelinker"; if this prelinker detects
  1018.              missing template entities, they are assigned to files (by
  1019.              updating the associated ..iiii file), and the prelinker
  1020.              recompiles the necessary source files.  If --ppttuusseedd or --ppttaallll
  1021.              are specified, --nnoo__pprreelliinnkk is the default mode.  The compiler
  1022.              will not read a ..iiii file to determine which template entities
  1023.              should be instantiated, and it will not store any information
  1024.              in the object file about which template entities could be
  1025.              instantiated by this source file.  This option also directs
  1026.              the driver not to invoke the template prelinker at link time.
  1027.  
  1028.              See the C++ Programmer's Guide for more information on using
  1029.              templates.
  1030.  
  1031.      --ppttaa
  1032.      --ppttaallll  (CCCC only) Template entities declared or referenced in the
  1033.              current compilation unit are instantiated.  For each fully
  1034.              instantiated template class, all of its member functions and
  1035.              static data members are instantiated whether or not they are
  1036.              used.  Nonmember template functions are instantiated even if
  1037.              the only reference was a declaration.  If --ppttaallll is specified,
  1038.              automatic instantiation is turned off.  This option may result
  1039.              in multiple definitions of template entities, and the linker
  1040.              may not remove such duplicates. If automatic instantiation is
  1041.              explicitly turned on (by specifying --pprreelliinnkk), then any
  1042.              additional template entities that the prelinker instructs the
  1043.              compiler to instantiate will also be instantiated.
  1044.  
  1045.              See the C++ Programmer's Guide for more information on using
  1046.              templates.
  1047.  
  1048.      --ppttnnoonnee (CCCC only) This is the default.  No templates entities are
  1049.              instantiated.  If automatic instantiation is on (--pprreelliinnkk is
  1050.              specified) then any template entities that the prelinker
  1051.              instructs the compiler to instantiate will be instantiated.
  1052.  
  1053.              See the C++ Programmer's Guide for more information on using
  1054.              templates.
  1055.  
  1056.      --ppttuusseedd (CCCC only) Template entities used in this compilation unit will
  1057.              be instantiated.  This includes all static members for which
  1058.              there are template definitions.  If --ppttuusseedd is specified,
  1059.              automatic instantiation is turned off by default.  This option
  1060.              may result in multiple definitions of template entities and
  1061.              the linker may not remove duplicates.
  1062.  
  1063.              If automatic instantiation is explicitly turned on (by
  1064.              specifying --pprreelliinnkk) then any additional template entities
  1065.              which the prelinker instructs the compiler to instantiate will
  1066.              also be instantiated.
  1067.  
  1068.              See the C++ Programmer's Guide for more information on using
  1069.              templates.
  1070.  
  1071.      --ppttvv    (CCCC only) Prints the name of the template entity and source
  1072.              file.
  1073.  
  1074.              See the C++ Programmer's Guide for more information on using
  1075.              templates.
  1076.  
  1077.      --rr      When specified with --IIPPAA and --cc during compilation, the
  1078.              resulted object is an ELF relocatable object, not an
  1079.              intermediate object.  When specified with --IIPPAA::rreelloopptt==oonn, the
  1080.              resulting object has non-PIC optimizations performed on it.
  1081.  
  1082.      --rr_p_r_o_c_e_s_s_o_r
  1083.              Specifies the code scheduler.  _p_r_o_c_e_s_s_o_r can be one of the
  1084.              following options:
  1085.  
  1086.              Option         Action
  1087.  
  1088.              44000000 or 44kk     Schedules code for the R4000 processor.
  1089.  
  1090.              55000000 or 55kk     Schedules code for the R5000 processor.
  1091.  
  1092.              88000000 or 88kk     Schedules code for the R8000 processor.
  1093.  
  1094.              1100000000 or 1100kk   Schedules code for the R10000 processor.
  1095.  
  1096.              1122000000 or 1122kk   Schedules code for the R12000 processor.
  1097.  
  1098.              This option adds the following to the head of the library
  1099.              search path, where _p_r_o_c_e_s_s_o_r is as you specified:
  1100.  
  1101.                   -L/usr/lib{32,64}/mips{3,4}/_p_r_o_c_e_s_s_o_r
  1102.  
  1103.              The actual library search path that is added depends on the
  1104.              ABI that is specified or implied.  See the --oo3322, --nn3322, and --6644
  1105.              option descriptions for more information on specifying an ABI.
  1106.              (See the mmaatthh(3) man page for details of math library usage.)
  1107.  
  1108.      --SS      Compiles the specified source files and creates symbolic
  1109.              assembly language output files suffixed with ..ss.
  1110.  
  1111.      --sshhaarreedd The linker creates a shared library instead of an executable
  1112.              program.  The linker links together all the object files (..oo
  1113.              files) and archives (..aa files) in the command line into a
  1114.              shared library with the name specified by the --oo option.  Any
  1115.              other shared libraries in the link line are not included into
  1116.              the newly created shared library, although they can be used to
  1117.              resolve external symbols during the link.  This option cannot
  1118.              be specified with the --cc option.
  1119.  
  1120.              See the lldd(1) man page for more information about shared
  1121.              libraries and archives.
  1122.  
  1123.      --sshhooww   Prints the passes as they execute with their arguments and
  1124.              their input and output files.
  1125.  
  1126.      --ssiiggnneedd Causes values of type cchhaarr to be treated as if they had type
  1127.              ssiiggnneedd cchhaarr (which can affect the result of integer
  1128.              promotions), but the values of CCHHAARR__MMIINN and CCHHAARR__MMAAXX are not
  1129.              affected.  The default is to treat values of type cchhaarr as if
  1130.              they had type uunnssiiggnneedd cchhaarr.
  1131.  
  1132.      --TTAARRGG:: ......
  1133.              The target option group controls the target architecture and
  1134.              machine for which code is generated.  The individual controls
  1135.              in this group are:
  1136.  
  1137.              ddiissmmiissss__mmeemm__ffaauullttss [[ == (( OONN||OOFFFF ))]]
  1138.                   Forces the kernel to dismiss any memory faults (such as
  1139.                   SIGSEGV or SIGBUS) which occur during execution of the
  1140.                   program (not just the code being compiled).  This option
  1141.                   allows optimizations which might cause extra faults and
  1142.                   can slow down execution if extra faults occur.  It also
  1143.                   prevents recognition of legitimate faults.  Default is
  1144.                   OOFFFF.
  1145.  
  1146.              eexxcc__mmaaxx== [[II]][[UU]][[OO]][[ZZ]][[VV]]
  1147.                   Specifies the maximum set of IEEE-754 floating point
  1148.                   exceptions for which traps may be enabled at runtime for
  1149.                   the program (not just the code being compiled).  Zero or
  1150.                   more of the five letters specify inexact (II), underflow
  1151.                   (UU), overflow (OO), divide-by-zero (ZZ), and invalid
  1152.                   operation (VV) exceptions.  This option allows
  1153.                   optimizations which might cause extra exceptions, and it
  1154.                   may prevent recognition of legitimate faults.  It does
  1155.                   not affect explicit setting of exception enable flags by
  1156.                   the program, and should be avoided if the program does
  1157.                   this.  See also the --TTAARRGG::eexxcc__mmiinn description.  Default
  1158.                   is IIUUOOZZVV, affected by the --TTEENNVV::XX option.
  1159.  
  1160.              eexxcc__mmiinn== [[II]][[UU]][[OO]][[ZZ]][[VV]]
  1161.                   Specifies the minimum set of IEEE-754 floating point
  1162.                   exceptions for which traps must be enabled at runtime for
  1163.                   the program (not just the code being compiled).  Zero or
  1164.                   more of the five letters specify inexact (II), underflow
  1165.                   (UU), overflow (OO), divide-by-zero (ZZ), and invalid
  1166.                   operation (VV) exceptions.  This option does not affect
  1167.                   explicit setting of exception enable flags by the
  1168.                   program, and should be avoided if the program does this.
  1169.                   See also the --TTAARRGG::eexxcc__mmaaxx option.  The --TTAARRGG::eexxcc__mmaaxx and
  1170.                   --TTAARRGG::eexxcc__mmiinn options specified for the various files
  1171.                   that comprise a program must be consistent; for example,
  1172.                   none of the --TTAARRGG::eexxcc__mmiinn values may require exceptions
  1173.                   disabled by --TTAARRGG::eexxcc__mmaaxx values.  Default is none.
  1174.  
  1175.              ffpp__pprreecciissee [[ == (( OONN||OOFFFF ))]]
  1176.                   Forces the target processor into precise floating point
  1177.                   mode at execution time.  Using this option to compile any
  1178.                   of the component source files of a program invokes this
  1179.                   feature in the resulting program.  This option is
  1180.                   supported only on R8000 target processors and can cause
  1181.                   significant performance degradation for programs with
  1182.                   heavy floating point usage.  See also the ffppmmooddee(1)
  1183.                   command.
  1184.  
  1185.              iissaa== (( mmiippss33||mmiippss44 ))
  1186.                   Identifies the target instruction set architecture for
  1187.                   compilation, such as the set of instructions that are
  1188.                   generated.  Specify --TTAARRGG::iissaa==mmiippss33 for code that must
  1189.                   run on R4000 processors.  This option is equivalent to
  1190.                   specifying --mmiippss33 or --mmiippss44 (see those options for
  1191.                   defaults).
  1192.  
  1193.              mmaadddd [[ == (( OONN||OOFFFF ))]]
  1194.                   Enables or disables transformations to use multiply/add
  1195.                   instructions.  These instructions perform a multiply and
  1196.                   an add with a single roundoff.  They are more accurate
  1197.                   than the usual discrete operations, and may cause results
  1198.                   not to match baselines from other targets.  Use this
  1199.                   option to determine whether observed differences are due
  1200.                   to mmaadddds.  Default is OONN for MIPS IV target, ignored for
  1201.                   others.
  1202.  
  1203.              ppllaattffoorrmm [[ == _i_p_x_x]]
  1204.                   Identifies the target SGI platform for compilation,
  1205.                   choosing various internal parameters (such as cache
  1206.                   sizes) appropriately.  The current supported values are
  1207.                   ip19, ip20, ip21, ip22_4k, ip22_5k, ip24, ip25, ip26,
  1208.                   ip27, ip28, ip30, ip32_5k, and ip32_10k.  The appropriate
  1209.                   selection for your platform can be determined by running
  1210.                   ""hhiinnvv --cc pprroocceessssoorr"".  The first line identifies the
  1211.                   proper IP number and, for those where a processor suffix
  1212.                   (for example, __44kk) is required, the next line identifies
  1213.                   the processor (R4000).
  1214.  
  1215.              pprroocceessssoorr== (( rr44000000||rr55000000||rr88000000||rr1100000000||rr1122000000 ))
  1216.                   Selects the processor for which to schedule code.  The
  1217.                   chosen processor must support the ISA specified (or be
  1218.                   implied by the ABI).  The processor can also be indicated
  1219.                   by specifying rr44kk, rr55kk, rr88kk, rr1100kk, rr1122kk.
  1220.  
  1221.              rr44kkrreevv2222==_s_e_t_t_i_n_g
  1222.                   Generates code to work around bugs in the R4000 rev 2.2
  1223.                   chip.  This currently means simulating 64-bit variable
  1224.                   shifts in the software.  Specify OONN or OOFFFF for _s_e_t_t_i_n_g.
  1225.                   The default is OOFFFF.
  1226.  
  1227.              ssyynncc [[ == (( OONN||OOFFFF ))]]
  1228.                   Enable/disable use of SYNC instructions.  Default is OONN.
  1229.  
  1230.      --TTEENNVV:: ......
  1231.              The target environment option group controls the target
  1232.              environment assumed and/or produced by the compiler.  The
  1233.              individual controls in this group are:
  1234.  
  1235.              aalliiggnn__aaggggrreeggaattee[[== _b_y_t_e_s ]]
  1236.                   Controls alignment of allocated aggregates, such as
  1237.                   structs and arrays.  _b_y_t_e_s specifies that any aggregate
  1238.                   object at least that large is to have at least that
  1239.                   alignment.  By default (or if _b_y_t_e_s is not specified),
  1240.                   aggregates are aligned to the integer register size, for
  1241.                   example, 8 bytes for 64-bit programs and 4 bytes for 32-
  1242.                   bit programs.  The value 0 specifies that the minimum
  1243.                   alignment consistent with the ABI is to be used.
  1244.                   Otherwise, the value given must be a power of two no
  1245.                   greater than 16.
  1246.  
  1247.              cchheecckk__ddiivv[[==NN]]
  1248.                   See --DDEEBBUUGG::ddiivv__cchheecckk on the DDEEBBUUGG__ggrroouupp(5) man page.
  1249.  
  1250.              llaarrggee__GGOOTT [[ ==OONN ]]
  1251.                   Assumes that the Global Offset Table (for shared code) is
  1252.                   more than 64K bytes and generates large offsets for
  1253.                   references to it.  Default is OOFFFF.  See also the
  1254.                   ssmmaallll__GGOOTT option description.
  1255.  
  1256.              ssmmaallll__GGOOTT [[ ==OONN ]]
  1257.                   Assumes that the Global Offset Table (for shared code) is
  1258.                   less than 64K bytes and generates small offsets for
  1259.                   references to it.  This is the default mode. See also the
  1260.                   llaarrggee__GGOOTT option decription.
  1261.  
  1262.              vvaarraarrggss__pprroottoottyyppeess [[ == (( OOFFFF||OONN ))]]
  1263.                   See the --DDEEBBUUGG::vvaarraarrggss__pprroottoottyyppeess option description on
  1264.                   the DDEEBBUUGG__ggrroouupp(5) man page.
  1265.  
  1266.              XX==00 .... 44
  1267.                   Specifies the level of enabled exceptions that is assumed
  1268.                   for purposes of performing speculative code motion
  1269.                   (default level 1 at --OO00 .... --OO22, 2 at --OO33).  In general,
  1270.                   an instruction is not speculated (i.e. moved above a
  1271.                   branch by the optimizer) unless any exceptions it might
  1272.                   cause are disabled by this option.  At level 0, no
  1273.                   speculative code motion may be performed.  At level 1,
  1274.                   safe speculative code motion may be performed, with
  1275.                   IEEE-754 underflow and inexact exceptions disabled.  At
  1276.                   level 2, all IEEE-754 exceptions are disabled except
  1277.                   divide by zero.  At level 3, all IEEE-754 exceptions are
  1278.                   disabled including divide by zero.  At level 4, memory
  1279.                   exceptions may be disabled or ignored.
  1280.  
  1281.                   NOTE: At levels above the default level 1, various
  1282.                   hardware exceptions that are normally useful for
  1283.                   debugging, or which are trapped and repaired by the
  1284.                   hardware, may be disabled or ignored, with the potential
  1285.                   of hiding obscure bugs.  The program should not
  1286.                   explicitly manipulate the IEEE floating point trap-enable
  1287.                   flags in the hardware if this option is used.
  1288.  
  1289.              zzeerrooiinniitt__iinn__bbssss [[ == (( OOFFFF||OONN ))]]
  1290.                   Enables data that is initialized to zero to be loaded
  1291.                   into the ..bbssss section instead of the ..ddaattaa section.
  1292.  
  1293.      --ttrraappuuvv This option has been replaced by --DDEEBBUUGG::ttrraapp__uunniinniittiiaalliizzeedd.
  1294.              See the DDEEBBUUGG__ggrroouupp(5) man page.
  1295.  
  1296.      --UU _n_a_m_e Removes any initial definition of _n_a_m_e.
  1297.  
  1298.      --uussee__rreeaaddoonnllyy__ccoonnsstt
  1299.              Puts string literals and file-level (static, common, or
  1300.              external) ccoonnsstt qualified initialized variables into a ..rrooddaattaa
  1301.              section to separate these objects from data likely to be
  1302.              modified.  This is the default.  However, if you want
  1303.              constants to not be writeable, then in addition to specifying
  1304.              --uussee__rreeaaddoonnllyy__ccoonnsstt, you must also specify --GG00 --rrddaattaa__sshhaarreedd,
  1305.              because by default, the linker makes ..rrooddaattaa and gp-relative
  1306.              sections writable.
  1307.  
  1308.      --uussee__rreeaaddwwrriittee__ccoonnsstt
  1309.              Puts all ccoonnsstt qualified variables and string literals in a
  1310.              readable and writable data section.
  1311.  
  1312.      --vv      This option has the same functionality as specifying --ffuullllwwaarrnn
  1313.              (verbose warnings).
  1314.  
  1315.      --vveerrssiioonn
  1316.              Displays the version number of the compiler.
  1317.  
  1318.      --WW _c,_a_r_g_1[[,,_a_r_g_2......]]
  1319.              Passes the argument(s) _a_r_g_i to the compiler pass _c where _c is
  1320.              one of [ppKKMMffbbaall].  The cc selects the compiler pass according
  1321.              to the following table:
  1322.  
  1323.              NNaammee ((--nn3322 oorr --6644))            CChhaarraacctteerr
  1324.  
  1325.              preprocessor                  pp
  1326.  
  1327.              pca                           KK (Automatic Parallelization
  1328.                                            Option Only; O32 ABI only)
  1329.  
  1330.              mpc
  1331.  
  1332.              fec                           ff (See below)
  1333.  
  1334.              be                            bb
  1335.  
  1336.              asm                           aa
  1337.  
  1338.              ld                            ll
  1339.  
  1340.              Sets of these phase names can be used to select any
  1341.              combination of phases.  For example, --WWbbaa,,--oo,,ffoooo passes the
  1342.              option --oo ffoooo to the bb and aa phases.
  1343.  
  1344.      --ww      Suppresses warning messages.
  1345.  
  1346.      --ww22     Counts warnings as errors.  The --nn3322 option must also be
  1347.              specified with this option.
  1348.  
  1349.      --wwooffff aallll
  1350.              Suppresses warning messages.  The --nn3322 option must also be
  1351.              specified with this option.
  1352.  
  1353.      --wwooffff _n_u_m_b_e_r_l_i_s_t
  1354.              Suppresses warning messages.  _n_u_m_b_e_r_l_i_s_t is a comma-separated
  1355.              set of 1 or more numbersets.  A numberset is either a simple
  1356.              integer or a pair of integers separated by a hyphen.
  1357.              Examples:  --wwooffff 11552277 suppresses warning 1527.  --wwooffff 11552277--
  1358.              11557700 suppresses warnings 1527 through 1570.  --wwooffff 11660000--
  1359.              11770000,,11770055--11779900 suppresses numbers 1600 through 1700 and 1705
  1360.              through 1790.
  1361.  
  1362.      --xxaannssii  (cccc only) See the --aannssii option description.
  1363.  
  1364.      --XXccpplluussccoommmm
  1365.              Applies C++ style comment rules.  On the cccc command line, the
  1366.              --nn3322 option must also be specified.
  1367.  
  1368.      --YY _c,_p_a_t_h
  1369.              Sets the _p_a_t_h in which to find the associated phase, using the
  1370.              same phase names as given in the --WW option.  The following
  1371.              characters can also be specified:
  1372.  
  1373.              II    Specifies where to search for include files
  1374.  
  1375.              SS    Specifies where to search for startup files (ccrrtt**..oo)
  1376.  
  1377.              LL    Specifies where to search for libraries
  1378.  
  1379. LLOOAADDEERR OOPPTTIIOONNSS
  1380.      Other arguments are assumed to be either loader options, object files,
  1381.      or libraries.  These files, together with the results of any
  1382.      compilations specified, are loaded in the order given, producing an
  1383.      executable program with the default name aa..oouutt..
  1384.  
  1385. EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS
  1386.      For information on environment variables, see the ppee__eennvviirroonn(5) man
  1387.      page.
  1388.  
  1389. NNOOTTEESS
  1390.      The compiler uses the same set of message numbers when compiling --nn3322
  1391.      or --6644, but it uses a different set of message numbers when compiling
  1392.      --oo3322.  Keep this in mind when writing multi-ABI MMaakkeeffiilleess.
  1393.  
  1394.      All SGI platforms support the development and execution of --oo3322, --nn3322,
  1395.      and --6644 applications, but the subsystems containing the appropriate
  1396.      libraries are not always installed by default.  During installation,
  1397.      you may have to select subsystems with names like pprroodduucctt..ssww3322 for
  1398.      --nn3322 libraries and pprroodduucctt..ssww6644 for --6644 libraries.
  1399.  
  1400.      The compiler attempts to continue after finding semantic errors.
  1401.      These errors may result in compiler internal errors.
  1402.  
  1403. EEXXAAMMPPLLEESS
  1404.      EXAMPLE 1:  Compile 64-bit MIPS IV (R8000, R10000, R5000) code, which
  1405.      will not run on R4000/R4400 processors.
  1406.  
  1407.           cc -64 -mips4 ...
  1408.  
  1409.      EXAMPLE 2:  Compile 64-bit ABI (MIPS 3) code, scheduled for best
  1410.      performance on the R8000 processor but not using R8000-specific (MIPS
  1411.      IV) instructions so that it will be executable on R4000/R4400
  1412.      processors.
  1413.  
  1414.           cc -64 -TARG:proc=r8000 ...
  1415.  
  1416.      EXAMPLE 3:  Compile with extensive optimization enabled, allowing
  1417.      transformations which affect floating point roundoff and overflow,
  1418.      assuming strict ANSI C aliasing rules.
  1419.  
  1420.           cc -O2 -OPT:roundoff=2:alias=typed ...
  1421.  
  1422.      EXAMPLE 4:  Compile with aggressive optimization (including SWP)
  1423.      enabled, allowing transformations with arbitrary effects on floating
  1424.      point roundoff and overflow.
  1425.  
  1426.           cc -O3 -OPT:roundoff=3 ...
  1427.  
  1428.      EXAMPLE 5:  Compile with aggressive optimization and generate the
  1429.      analysis files used by ProDev ProMP, the parallel analyzer.  The
  1430.      ccvvppaavv(1) command invokes the parallel analyzer.
  1431.  
  1432.           cc -03 -c -apokeep test.c test.o
  1433.           cvpav -f test.c
  1434.  
  1435. FFIILLEESS
  1436.      aa..oouutt                Default name of executable output file
  1437.  
  1438.      _f_i_l_e..cc               C source file
  1439.  
  1440.      _f_i_l_e..ii               C source file
  1441.  
  1442.      _f_i_l_e..aannll, _f_i_l_e..mm     Program analysis files used by the parallel
  1443.                           analyzer, ProDev ProMP
  1444.  
  1445.      _f_i_l_e..oo               Object file
  1446.  
  1447.      _f_i_l_e..ss               Assembly language source file
  1448.  
  1449.      _f_i_l_e..ll               Listing file
  1450.  
  1451.      iiii__ffiilleess             Directory that contains ..iiii files
  1452.  
  1453.      mmoonn..oouutt              File produced for analysis by pprrooff(1)
  1454.  
  1455.      rriiii__ffiilleess            Directory generated for book-keeping information
  1456.                           used to implement data distribution directives
  1457.  
  1458.      //uussrr//iinncclluuddee         Standard directory for ##iinncclluuddee files
  1459.  
  1460.      //uussrr//bbiinn//lldd          Loader
  1461.  
  1462.      //uussrr//bbiinn//ccoorrdd        Function rearranger
  1463.  
  1464.      //ttmmpp//ccmmppllrr**          Temporary files
  1465.  
  1466.      //eettcc//ccoommppiilleerr..ddeeffaauullttss
  1467.                           Default ABI, ISA and processor options
  1468.                           configuration file
  1469.  
  1470.      //uussrr//lliibb{{3322,,6644}}//lliibbcc..ssoo..11
  1471.                           Shared standard library (This file is loaded by
  1472.                           using the --llcc loader option and not a full path
  1473.                           name.)
  1474.  
  1475.      //uussrr//lliibb{{3322,,6644}}//lliibbffppee..ssoo
  1476.                           Floating point exception handler library, see
  1477.                           ssiiggffppee(3c)
  1478.  
  1479.      //uussrr//lliibb{{3322,,6644}}//lliibbmm..ssoo
  1480.                           Shared math library
  1481.  
  1482.      //uussrr//lliibb{{3322,,6644}}//lliibbpprrooff..aa
  1483.                           Profiling library
  1484.  
  1485. SSEEEE AALLSSOO
  1486.      aass(1), ccoolllliiddee(1), ccpppp(1), ccoopptt(1), ccvvppaavv(1), ff9900(1), mmppcc(1), ddiiss(1),
  1487.      nnmm(1), ddbbxx(1), eellffdduummpp(1), ff7777(1), ffttoocc(1), lldd(1), ppiixxiiee(1), pprrooff(1),
  1488.      ssppeeeeddsshhoopp(1), wwhhaatt(1)
  1489.  
  1490.      ggeettaabbii(3c), ssiiggffppee(3c)
  1491.  
  1492.      ggpp__oovveerrffllooww(5), llnnoo(5), oo3322(5), oopptt(5), ppee__eennvviirroonn(5)
  1493.  
  1494.      W. Kernighan and D. M. Ritchie, _T_h_e _C _P_r_o_g_r_a_m_m_i_n_g _L_a_n_g_u_a_g_e, Prentice-
  1495.      Hall, 1978
  1496.  
  1497.      _C _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l
  1498.  
  1499.      _C++ _P_r_o_g_r_a_m_m_e_r'_s _G_u_i_d_e
  1500.  
  1501.      _M_I_P_S_p_r_o _C_o_m_p_i_l_i_n_g _a_n_d _P_e_r_f_o_r_m_a_n_c_e _T_u_n_i_n_g _G_u_i_d_e
  1502.  
  1503.      _M_I_P_S_p_r_o _6_4-_B_i_t _P_o_r_t_i_n_g _a_n_d _T_r_a_n_s_i_t_i_o_n _G_u_i_d_e
  1504.  
  1505.      _M_I_P_S_p_r_o _N_3_2 _A_B_I _H_a_n_d_b_o_o_k
  1506.  
  1507.      _P_r_o_D_e_v _P_r_o_M_P _U_s_e_r'_s _G_u_i_d_e
  1508.  
  1509.      This man page is available only online.
  1510.